package com.ytclub.subject.domain.service;

import com.ytclub.subject.common.entity.PageResult;
import com.ytclub.subject.domain.entity.SubjectInfoBO;
import com.ytclub.subject.infra.basic.entity.SubjectInfoEs;

import java.util.List;

/**
 * 题目领域服务层接口类
 *
 * @author: HuangQi
 * @date: Created in 21:14 2023/12/19
 * @description: 题目领域服务层接口
 */
public interface SubjectInfoDoaminService {

    /**
     * 新增题目
     *
     * @param subjectInfoBO 新增题目的信息
     * @return 新增结果
     */
    void add(SubjectInfoBO subjectInfoBO);

    /**
     * 分页查询题目
     *
     * @param subjectInfoBO 查询条件
     * @return 查询到的题目列表
     */
    PageResult<SubjectInfoBO> getSubjectPage(SubjectInfoBO subjectInfoBO);

    /**
     * 查询题目详情
     *
     * @param subjectInfoBO 查询条件
     * @return 题目详情
     */
    SubjectInfoBO querySubjectInfo(SubjectInfoBO subjectInfoBO);

    /**
     * 全文检索
     *
     * @param subjectInfoBO 检索条件
     * @return 检索结果
     */
    PageResult<SubjectInfoEs> getSubjectPageBySearch(SubjectInfoBO subjectInfoBO);

    /**
     * 获取贡献列表
     *
     * @return 贡献列表
     */
    List<SubjectInfoBO> getContributeList();
}
